﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace T1AdsSimuladorV1
{
    class QuadradosMedios : IGerador
    {
        public int X0_semente { get; set;}

        public QuadradosMedios()
        {
            X0_semente = 0;
        }

        public List<float> generate(int quantidade)
        {
            return generate(X0_semente, quantidade);
        }

        private List<float> generate(int x0, int qtd)
        {
            List<float> aleatorios = new List<float>();
            if(qtd == 0)
                return aleatorios;
            
            double temp = System.Math.Pow(x0,2);
            String result = temp.ToString();
            if(result.Length < 9)
                result = result.PadLeft(8,'0');
            int inicioQuadrado = (result.Length - 4) / 2;
            int randomGerado = Int16.Parse(result.Substring(inicioQuadrado, 4));
            float random01 = float.Parse("0," + randomGerado.ToString());
            aleatorios.Add(random01);
            aleatorios.AddRange(generate(randomGerado, qtd - 1));
            return aleatorios;
        }
    }
}
